/* 省市区三级联动 */
// 获取用户的信息
var prov
var city
var area
var detail
// 更改省份后的操作
$("select[name='prov']").change(function() {
    let provCode = $(this).children('option:selected').data('code');
    getCity(provCode);
});
// 更改城市后的操作
$("select[name='city']").change(function() {
    // var cityCode = $("select[name='city']").val();
    let cityCode = $(this).children('option:selected').data('code');
    getArea(cityCode);
});

function initAddress() {
    $('input[name="detail"]').val(detail)
    let firstProvCode ='0';
    // ajax请求所有省份
    $.get({
        url: "/getProvinces",
        dataType: 'JSON',
        error: (err) => {
            alert('获取省份失败.')
            console.error(err.responseText)
        },
        success: (data) => {
            $.each(data, function(i, d) {
                if(d.name === prov) firstProvCode = d.code
                $("select[name='prov']").append(
                    "<option value='" + d.name + "' data-code='"+ d.code + "'" + (d.name===prov ? "' selected>" : "'>") + d.name
                    + "</option>");
            });
            // 获取第一个省份的code
            if(firstProvCode != '0')
                $("select[name='prov']").css('value', prov)
            else
                firstProvCode = data[0].code;
            // 根据第一个省份code获取对应城市列表
            getCity(firstProvCode);
        }
    });
}

//获取对应城市列表（里面包括获取第一个城市的区县列表）
function getCity(provCode) {

    var firstCityCode = '0';

    // ajax请求所有市级单位
    $.get({
        url: "/getCities",
        data: {provCode:provCode},
        dataType: 'JSON',
        error: (err) => {
            alert('获取市区失败.')
            console.error(err.responseText)
        },
        success: (data) => {
            // 先清空城市下拉框
            $("select[name='city']").empty();

            $.each(data, function(i, d) {
                if(d.name === city) firstCityCode = d.code
                $("select[name='city']").append(
                    "<option value='" + d.name + "' data-code='"+ d.code + "'" + (d.name===city ? "' selected>" : "'>") + d.name
                    + "</option>");
            });

            // 获取第一个城市的code
            if(firstCityCode != '0') {
                $("select[name='city']").attr('value', city)
            }else firstCityCode = data[0].code;
            // 根据第一个城市code获取对应区县列表
            getArea(firstCityCode);
        }
    })

}

function getArea(cityCode) {

    // ajax请求所有区县单位
    $.get({
        url: '/getAreas',
        data: {cityCode:cityCode},
        dataType: 'JSON',
        error: (err) =>{
            alert('获取地区信息失败.')
            console.error(err.responseText)
        },
        success: (data) => {
            // 先清空区县下拉框
            $("select[name='area']").empty();
            $.each(data, function (i, d) {
                $("select[name='area']").append(
                    "<option value='" + d.name + "' data-code='"+ d.code + "'" + (d.name===area ? "' selected>" : "'>") + d.name
                    + "</option>");
            });
        }
    })
}